package com.mf.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.ToString;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.beans.Transient;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

import lombok.Getter;
import lombok.Setter;

/**
 * @author mf
 * @since 2024-09-08
 */
@Getter
@ToString
@Setter
@TableName("t_purchase_record")
public class PurchaseRecord implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 买入日期
     */
    private String buyDate;

    /**
     * 卖出日期
     */
    private String sellDate;

    /**
     * 买入价格
     */
    private double buyPrice;

    /**
     * 卖出价格
     */
    private double sellPrice;

    /**
     * 盈利百分比
     */
    private Double profit;
    /**
     * 股票代码
     */
    private String dm;

    /**
     * 买入天数
     */
    private Integer days;

    /**
     * 买入类型
     * 1.
     *  卖出卖出逻辑：
     *      1.1 MA5小于MA10  这时记录准备卖出  如果重新MA5大于MA10，则重置卖出价格
     *      如果在这期间 收盘价小于 记录 MA5小于MA10当天的最低价'
     *  买入逻辑  :
     *      1.1 获取基准价逻辑 如果当年价格低于以前的年份，那么以今年的为准，否则以平均最低价最多的年份为准
     *      1.2 符合MA策略
     *          ma5 大于Ma 10, ma10 大于 前3天的Ma10,ma5 大于 前3天的Ma5
     *      1.3 前一天的开盘价和收盘价不能超过5%
     *
     */
    private Integer type;



    private LocalDateTime createdTime;

    private LocalDateTime updateTime;
}